/**
 * @author zhaoren
 * @version 1.0
 * @description 动作工厂，由工厂来产生具体的操作
 * @date 2020/7/28 9:55
 **/
public class ActionFactory {

    /**
     * 由工厂根据具体需求来创建action对象这样就可以降低客户端和具体action之间的耦合度
     * 当需要改变操作功能时只需要改变具体的action类和actionFactory即可，而客户端调用无序做出重大改变
     * @return {@link Action}
     */
    public static Action createAction(int actionFlag){
        Action action = null;
        switch (actionFlag){
            case 1:
                action = new Eat();
                break;
            case 2:
                action = new Run();
                break;
            case 3:
                action = new Sleep();
                break;
            case 4:
                action = new Sit();
                break;
        }
        return action;
    }

}
